//
//  ViewController.swift
//  tableviewdemo
//
//  Created by mac on 2019/6/21.
//  Copyright © 2019年 mac. All rights reserved.
//

import UIKit

struct userInfo:Decodable {
    var title:String? = nil
    var commentList:[comment]? = nil
}
struct comment:Decodable {
    
    init(_ text:String) {
        title = text
        height = title?.heightOfText(fontSize: 17, width: UIScreen.main.bounds.width - 90) ?? 0
    }
    
    var title:String?
    var height:CGFloat = 0
    
}

class ViewController: UIViewController {
    
    let dataSource:[userInfo] = [userInfo(title: "时政新闻眼｜习近平访问朝鲜，开创了这些第一次",
                                          commentList: [comment("时政新闻眼,开创了这些第一次"),
                                                        comment("6月20日下午，朝鲜劳动党委员长、国务委员会委员长金正恩告诉正在朝鲜访问的中共中央总书记、国家主席习近平：今天平壤有25万多民众涌上街头，热烈欢迎总书记同志。"),
                                                        comment("主席夫妇这次出访，开创了不止一个“第一次”：外国领")]),
                                 userInfo(title: "你好中国", commentList: nil),
                                 userInfo(title: "中朝友谊“历久弥坚金不换”",
                                          commentList: [comment("中朝友谊“历久弥坚金不换”"),
                                                        comment("习近平总书记此次访朝，是党的十八大以来他第一次访问朝鲜，也是我们党和国家最高领导人时隔14年再次访问朝鲜。2008年6月，时任国家副主席的"),
                                                        comment("时政新闻眼,开创了这些第一次")]),
                                 userInfo(title: "欢迎仪式彰显东道主热情和敬意",
                                          commentList: [comment("当地时间6月20日中午12时许，习近平乘坐专机抵达平壤顺安机场，开启了这次历史性访问。"),
                                                        comment("时政新闻眼,开创了这些第一次"),
                                                        comment("△这是习近平专机抵达机场。（央视记者王哈男拍摄）")])]

    override func viewDidLoad() {
        super.viewDidLoad()
    }
}

extension String {
    func heightOfText(fontSize: CGFloat, width: CGFloat) -> CGFloat {
        let font = UIFont.systemFont(ofSize: fontSize)
        let rect = NSString(string: self).boundingRect(with: CGSize(width: width, height: CGFloat(MAXFLOAT)), options: .usesLineFragmentOrigin, attributes: [NSAttributedString.Key.font: font], context: nil)
        return ceil(rect.height)
    }
}

extension ViewController :UITableViewDataSource,UITableViewDelegate {
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return dataSource.count
    }
    
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        guard let cell:TableViewCell = tableView.dequeueReusableCell(withIdentifier: "reusercell") as? TableViewCell else {
            return UITableViewCell()
        }
        cell.title.text = dataSource[indexPath.row].title
        cell.setCommentData(dataSource[indexPath.row].commentList)
        return cell
    }
    
    
}
